package com.itcam.methodreferences;

import java.util.stream.Stream;

/**
 * @author : Cammy.Wu
 * Description : 静态方法名
 */

public class Demo01 {
    public static void main(String[] args) {
        // 需求：挑出所有男学生
        Stream.of(
                        new Student("李星云", "男"),
                        new Student("姬如雪", "女"),
                        new Student("陆林轩", "女")
                ).filter(Demo01::isMale)
                .forEach(student -> System.out.println("student = " + student));
    }

    /**
     * 判断学生是否为男性
     *
     * @param student 待判断的学生对象
     * @return 如果学生为男性返回 true，否则返回 false
     */
    static boolean isMale(Student student) {
        // 比较学生的性别属性是否为 "男"
        return student.sex.equals("男");
    }

    /**
     * 学生记录类，用于存储学生的基本信息
     *
     * @param name 学生的姓名
     * @param sex  学生的性别
     */
    record Student(String name, String sex) {
    }

}

class Student {
    private String name;
    private int age;
    private String sex;

    public Student(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public String getSex() {
        return sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}
